﻿<p>The <em>IfcFillAreaStyleHatching</em> is used to define simple, vector-based hatching patterns, based on styled straight lines. The curve font, color and
thickness is given by the <em>HatchLineAppearance</em>, the angle by the <em>HatchLineAngle</em> and the distance to the next hatch line by
<em>StartOfNextHatchLine</em>, being either an offset distance or a vector.</p>
<blockquote class="extDef">NOTE&nbsp; Definition according to ISO 10303-46:<br> The fill area style hatching defines a styled pattern of curves for hatching an
annotation fill area or a surface.</blockquote>
<blockquote class="note">NOTE&nbsp; If the hatch pattern involves two (potentially crossing) rows of hatch lines, then two instances of
<em>IfcFillAreaStyleHatching</em> should be assigned to the <em>IfcFillAreaStyle</em>. Both share the same (virtual) point of origin of the
hatching that is used by the reference hatch line (or the <em>PointOfReferenceHatchLine</em> if there is an offset).</blockquote>
<p>For better control of the hatching appearance, when using hatch lines with other fonts then continuous, the <em>PatternStart</em> allows to offset the
start of the curve font pattern along the reference hatch line (if not given, the <em>PatternStart</em> is at zero distance from the virtual point of
origin). If the reference hatch line does not go through the origin (of the virtual hatching coordinate system), it can be offset by using the
<em>PatternStart</em> .</p>
<blockquote class="note">NOTE&nbsp; The coordinates of the <em>PatternStart</em> are given relative to the origin of the object coordinate
of <em>IfcAnnotationFillArea</em>, or if present, the <em>FillAreaTarget</em> attribute of <em>IfcAnnotationFillArea</em>. The measure values are given in
global drawing length units, representing a model hatching, and can be translated into drawing units by the <em>TargetScale</em> for a scale depended
<em>IfcGeometricRepresentationSubcontext</em>, if provided.</blockquote>
<blockquote class="deprecated">DEPRECATION&nbsp; The use of <em>PointOfReferenceHatchLine</em> is deprecated.</blockquote>
<p><small>Figure 2 illustrates hatch attributes.</small></p>
<table>
<tr>
<td>
<table border="0" cellpadding="2" cellspacing="2" width="100%">
<tbody>
<tr>
<td align="left" valign="top" width="280"><img src="../../../figures/ifcfillareastylehatching_fig1.gif" alt="hatch example 1"></td>
<td align="left" valign="top"><small><u>Example 1</u><br>
This example shows simple hatching given by using a curve font "continuous" at <em>HatchLineAppearance</em>.<br>
<br>
The distance of hatch lines is given by a positive length measure. The angle (here 45' if measures in degree) is provided by <em>HatchLineAngle</em>.<br>
<br>
The <em>PatternStart</em> is set to NIL ($) in this example.</small></td>
<td align="left" valign="top" width="280"> <img src="../../../figures/ifcfillareastylehatching_fig2.gif" alt="hatch example 2"></td>
<td align="left" valign="top"><small><u>Example 2</u><br>
This shows hatching from example 1 with using a different curve font at <em>HatchLineAppearance</em>.<br>
<br></small> <small>The distance of hatch lines is given by a positive length
measure, therefore the font pattern start is at a point at the next hatch line
given by a vector being perpendicular to the point of origin at the reference
hatch line.<br>
<br></small> <small>The <em>PatternStart</em> is set to NIL ($) in this
example.</small></td>
</tr>
<tr>
<td width="280"><img src="../../../figures/ifcfillareastylehatching_fig3.gif" alt="hatch example 3"></td>
<td align="left" valign="top"><small><u>Example 3</u><br>
This example uses hatching from example 2 with a vector to determine the pattern start of the next hatch lines.<br>
<br>
The pattern start is the beginning of the first visual curve font pattern segment at <em>IfcCurveFont.CurveFont</em>.<br>
<br></small> <small>The <em>PatternStart</em> is set to NIL ($) in this
example.</small><br></td>
<td width="280"><img src="../../../figures/ifcfillareastylehatching_fig4.gif" alt="hatch example 4"></td>
<td align="left" valign="top"><small><u>Example 4</u><br>
This example uses hatching from example 3 where the pattern start is offset
from the point of origin at the reference hatch line. That is, the first
visible curve font pattern segment now does not start at the point of origin at
the reference hatch line.</small><br>
<small><br></small></td>
</tr>
<tr>
<td><img src="../../../figures/ifcfillareastylehatching_fig5.gif" alt="hatch example 5"></td>
<td align="left" valign="top"><small><u>Example 5</u><br>
This example uses hatching from example 4 where the hatch pattern is shifted
against the underlying coordinate system.<br>
<br>
The point that is mapped to the insertion point of the
<em>IfcAnnotationFillAreaOccurrence</em> now has an X and Y offset from the
start of the reference hatch line. That is, the reference hatch line now does
not go through the insertion point of the hatching.<br>
<br>
<br>
<br></small></td>
<td valign="top"><img src="../../../figures/ifcfillareastylehatching_fig6.gif" alt="fig 6"></td>
<td valign="top"><small><u>Example 6</u><br>
This example shows use of <em>IfcFillAreaStyleHatching</em> attributes for two <em>IfcFillAreaStyleHatching</em>'s within one <em>IfcFillAreaStyle</em>.<br>
<br>
Note that the <em>PatternStart</em> now displaces both the reference hatch line from the point of origin and the start of the curve pattern. This can be used
in cases when more than one <em>IfcFillAreaStyleHatching</em> is used in an <em>IfcFillAreaStyle</em> in order to place rows of hatch lines with an offset
from each other.</small></td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td>
<p class="figure">Figure 2 &mdash; Fill area style hatching</p>
</td>
</tr>
</table>
<blockquote class="note">NOTE&nbsp; Entity adapted from
<strong>fill_area_style_hatching</strong> defined in ISO10303-46</blockquote>
<blockquote class="history">HISTORY&nbsp; New entity in IFC2x2.</blockquote>
<blockquote class="change-ifc2x3">IFC2x3 CHANGE&nbsp; The
<em>IfcFillAreaStyleHatching</em> has been changed by making the attributes
<em>PatternStart</em> and <em>PointOfReferenceHatchLine</em> OPTIONAL. The
attribute <em>StartOfNextHatchLine</em> has changed to a SELECT with the
additional choice of <em>IfcPositiveLengthMeasure</em>. Upward compatibility
for file based exchange is guaranteed.</blockquote>
<blockquote class="change-ifc2x4">IFC4 CHANGE&nbsp; The attribute data type
for <em>StartOfNextHatchLine</em> has been changed to be a select of
<em>IfcPositiveLengthMeasure</em> and <em>IfcVector</em>.</blockquote>